manifest(清单文件)
定义:
manifest(清单文件)其实就是一个JSON文件,提供应用相关的信息
eg:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19{
"name": "Progressive Times web app",
"short_name": "Progressive Times",
"start_url": "/index.html",
"display": "standalone",
"theme_color": "#FFDF00",
"background_color": "#FFDF00",
"icons": [{
"src": "homescreen.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "homescreen-144.png",
"sizes": "144x144",
"type": "image/png"
}
]
}
- name 用作当用户被提示安装应用时出现的文本。同时也是启动页面显示名字
- short_name 用作当应用安装后出现在用户主屏幕上的文本
- start_url 决定了当用户从设备的主屏幕开启 Web 应用时所出现的第一个页面。根据构建的 Web 应用类型,你可能需要预设如何首次加载。display 字段表示开发者希望他们的 Web 应用如何向用户展示。
- theme_color 字段,可以对浏览器的地址栏进行着色,以符合网站的主色调。
- icons 字段决定了当 Web 应用被添加到设备主屏幕时所显示的图标。
- background_color 启动页面的颜色
- display 设置启动页面的显示模式
1 |
|
添加到主屏幕条件
显示“添加到主屏幕”提示,需要满足以下几个条件:
- 需要 manifest.json 文件
- 清单文件需要启动 URL
- 需要 144x144 的 PNG 图标
- 网站正在使用通过 HTTPS 运行的 Service Worker
- 用户需要至少浏览网站两次,并且两次访问间隔在五分钟之上
控制浏览器的添加到主屏幕事件
当你不希望浏览器的添加到主屏幕提示时
1 | window.addEventListener('beforeinstallprompt', function(e) { |
判断用户对该功能的选择情况
1 | window.addEventListener('beforeinstallprompt', function (event) { |
为 beforeinstallprompt 事件添加了监听器。这个事件有个叫做 userChoice 的对象,它返回用户决定的 Promise 。我们可以使用这个 Promise 的结果来判断用户是关掉提示还是确认提示。
此时,你可以决定将此信息发送到 Web 分析工具,以便随着时间的推移跟踪此功能的使用情况。这项技术可以用于了解用户如何与“添加到主屏幕”提示进行交互。
控制提示
1 |
|
- 点击此按钮会显示提示
- 检查是否支持 Service Workers,如果支持则注册
- 为 ‘beforeinstallprompt’ 事件添加事件监听器
- 此时,我们可以启用按钮
- 我们将事件保存在变量中,这样它可以稍后触发
- 为按钮的点击事件添加事件监听器
- 用户与我们的应用进行了积极的互动,Chrome 已经尝试提前提醒,所以让我们来看看提示
- 遵循用户的选择
- 我们不再需要提示,清理掉它
调试清单文件
支持pwa技术网站:https://www.flipkart.com/
- 可以通过Google Chrome中的Application标签中的Manifest菜单调试
- 通过在线网站调试 https://manifest-validator.appspot.com/
- 测试网址:https://hub.settled.co.uk/offline
需要梯子访问